#include "Alumno.h"
#include "Instructor.h"
#include <iostream>
using namespace std;

#ifdef __cplusplus
#define __STDC_CONSTANT_MACROS
#ifdef _STDINT_H
#undef _STDINT_H
#endif
# include <stdint.h>
#endif
extern "C" {
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavutil/avutil.h>
#include <libswscale/swscale.h>
}
#include <glibmm-2.4/glibmm/thread.h>
#include <gtkmm-2.4/gtkmm/main.h>
#include <glibmm-2.4/glibmm.h>
#include <iostream>
#define AUDIO_INBUF_SIZE 20480
#define AUDIO_REFILL_THRESH 4096

#include "VentanaModo.h"
#include "VentanaAlumno.h"
#include "VentanaInstructor.h"
#include "Alumno.h"
#include "Instructor.h"

using std::cout;
using std::endl;
using std::cerr;
using std::string;

int main(int argc, char* argv[]) {
	if (!Glib::thread_supported()) Glib::thread_init();

	gdk_threads_init();
	gdk_threads_enter();

	Gtk::Main kit(argc, argv);

	VentanaModo selecModo;

	Gtk::Main::run(selecModo);

	if (selecModo.getModo() == MODOALUMNO) {
		Alumno alumno("Alumno", "clave", argv[1], argv[2], argv[3]);
		VentanaAlumno venAlumno(&alumno);
		Gtk::Main::run(venAlumno);
	}
	if (selecModo.getModo() == MODODOCENTE) {
		Instructor instructor("Mariano", "34368858", argv[1], argv[2], argv[3]);
		VentanaInstructor venInstructor(&instructor);
		Gtk::Main::run(venInstructor);
		instructor.terminarClase("001");
	}
	gdk_threads_leave();
	return 0;
}
